Exploiting Commuting Operations in Parallelizing Serial Programs

نویسنده

  • PEDRO DINIZ
چکیده

Two operations commute if the result of their execution is independent of the order in which they execute. Commuting operations can be executed concurrently provided they execute atomically on the objects they access. Statically recognizing commuting operations is of great interest because they increase the amount of concurrency a compiler can exploit. In this document we introduce commutativity analysis-a new technique for automatically parallelizing serial programs. We then conduct a feasibility study of existing scientiic applications as to the existence and exploitability of commuting operations. We study the commuting operations present in one such application-the Barnes-Hut hierarchical N-body algorithm. We then parallelize this application using knowledge of commuting operations and present performance results of the parallel code for a shared-memory multiprocessor.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Commutativity Analysis: A New Technique for Automatically Parallelizing Serial Programs

This paper introduces a new analysis technique, commutativity analysis, for automatically parallelizing programs written in sequential, imperative programming languages. Commutativity analysis aggregates both data and computation into larger grain units. It then analyzes the computation at this granularity to discover when pieces of the computation commute (i.e. generate the same result regardl...

متن کامل

Automatically Parallelizing Serial Programs Using Commutativity Analysis

This paper introduces a new analysis technique, commutativity analysis, for automatically parallelizing programs written in a sequential, imperative programming language. Existing parallelizing compilers preserve the data dependences of the original serial program. They analyze the program at the level of individual reads and writes to single words of memory to generate parallel code that prese...

متن کامل

Graph-Based Divide and Conquer Method for Parallelizing Spatial Operations on Vector Data

In computer science, dependence analysis determines whether or not it is safe to parallelize statements in programs. In dealing with the data-intensive and computationally intensive spatial operations in processing massive volumes of geometric features, this dependence can be well utilized for exploiting the parallelism. In this paper, we propose a graph-based divide and conquer method for para...

متن کامل

On the performance of the Python programming language for serial and parallel scientific computations

This article addresses the performance of scientific applications that use the Python programming language. First, we investigate several techniques for improving the computational efficiency of serial Python codes. Then, we discuss the basic programming techniques in Python for parallelizing serial scientific applications. It is shown that an efficient implementation of the array-related opera...

متن کامل

Exploiting Implicit Parallelism in Dynamic Array Programming

We have built an interpreter for the array programming language J. The interpreter exploits implicit data parallelism in the language to achieve good parallel speedups on a variety of benchmark applications. Many array programming languages operate on entire arrays without the need to write loops. Writing without loops simplifies the programs. Array programs without loops allow an interpreter t...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1995